Modelo de Carga Eficiente en la Nube

Agosto 30, 2025

Este es un modelo matemático que ayuda a determinar cuál es la cantidad óptima de instancias o servidores que una aplicación web necesita para funcionar de manera óptima.

Hay que entender algo importante, si un computador/servidor solo usa el 10% de su capacidad se están desaprovechando recursos y afecta negativamente al medio ambiente y al bolsillo de las empresas. Igualmente, si el computador/servidor está siempre al 95% de su capacidad, tampoco es óptimo, ya que el tiempo de respuesta del equipo se reduce drásticamente.

Por eso propongo este modelo, que ayuda a determinar cuál es el punto óptimo para que el servidor no malgaste recursos pero tampoco sea lento.

Este modelo busca conciliar el uso general del servidor, no solo la CPU, la RAM, el disco duro, etc. Hay que tener presente que el computador es solo uno en su conjunto, de nada me sirve tener optimizado la CPU si tengo fugas de en la memoria RAM o si el tiempo de escritura del disco es muy lento.

Este modelo lo desarrollé para la cátedra de cálculo diferencial de la Universidad Católica del Norte y fue verificado usando derivadas y álgebra. El ejemplo que muestro fue resuelto con álgebra.

Modelo matemático

El tiempo de respuesta total del servidor () es la suma del tiempo dedicado a hacer el trabajo y el tiempo perdido en la sobrecarga.

Tiempo para hacer el trabajo

  •  = Cantidad total de trabajo a realizar
  •  = Número de procesos

Si se divide una tarea total () entre más procesos (), el tiempo que toma cada uno para completarla se reduce. Por ejemplo, si una tarea toma 100 segundos con un solo proceso, con 10 procesos idealmente tomaría 10 segundos (). El tiempo de trabajo es inversamente proporcional al número de procesos.

Tiempo de sobrecarga

Esta parte del modelo representa el costo de la concurrencia. Cuando se tienen muchos procesos, el servidor gasta tiempo adicional en tareas de gestión, como:

Cambio entre procesos.

Sincronización para evitar que se pisen los unos a los otros.

Pérdida de rendimiento en caché de CPU.

Este tiempo de sobrecarga es directamente proporcional al número de procesos que se tienen. Mientras más procesos, mayor es el tiempo que se gasta en coordinarlos

Modelo completo

Es la suma de estos dos efectos. La curva que crea tiene forma de "U": al principio, la eficiencia del trabajo () domina, por lo que el tiempo de respuesta disminuye. Pero después de cierto punto, la sobrecarga () se vuelve más grande que el beneficio, y el tiempo de respuesta empieza a subir de nuevo.

Determinar las capacidades del servidor

Para determinar la capacidad de una configuración de hardware se debe medir cuánto tiempo le toma a la máquina procesar  procesos simultáneos, es decir, cuánto tiempo le toma procesar 1 proceso, cuánto tiempo le toma procesar 3 procesos, así  veces se necesite. A mayor cantidad de datos mayor precisión en la predicción.

Ejemplo de la tabla de datos de  procesos en  tiempo:

Procesos ()

Tiempo de respuesta ()

1

1.1s

5

2s

10

2.8s

15

3.5s

A pesar de que el modelo  no es lineal, se puede usar un truco matemático para transformarlo en un problema de regresión lineal. El truco es ordenarlo de tal manera que se parezca a la fórmula de una línea recta

El modelo

Multiplicamos toda la ecuación por , entonces

Definimos nuevas variables

  •  (Pendiente)
  •  (Intersección con el eje Y)
  •  (Número total de pares)

Entonces

Esta fórmula configura una fórmula de regresión lineal.

Ejemplo visual que muestra cómo actúa la regresión lineal sobre los datos iniciales. Siendo los datos los puntos rojos y la línea azul representa una línea recta que trata de pasar lo más cerca posible de cada punto.

Procedimiento para calcula  y

Transformar los datos

A cada par de valores

 y

Calcular la regresión lineal

Utilizamos las fórmulas para la regresión lineal

Fórmula para la pendiente

Fórmula para intersección

Obtener  y

Nuestros valores  y  corresponden respectivamente a los valores  y  que acabamos de calcular con las fórmulas de las pendientes

Aplicar el modelo matemático

Para aplicar el modelo matemático debemos derivar la función re-escribiéndola con exponentes

Encontramos el punto crítico, es decir, hallar el valor de  que minimiza el tiempo. Para esto igualamos la derivada a

Ahora, con una segunda derivada, verificamos que el valor se obtiene del resultado anterior es un mínimo, es decir, que el valor no esté creciendo o decreciendo, entonces derivamos la primera derivada.

Verificamos el mínimo

Teniendo en cuenta que las constantes  y  son positivas (ya que no es posible una carga de trabajo negativa en un computador) e igualmente el número de procesos  es positivo el resultado de la fórmula anterior debe ser positivo, es decir,

El hecho de que la segunda derivada sea positiva es la prueba matemática de que la curva de tiempo de respuesta tiene una concavidad hacia arriba en ese punto. Esto da a entender que el valor de  que se obtuvo es un mínimo, y no un máximo.

Aplicación práctica en el mundo real

El razonamiento es el siguiente: Con el cálculo diferencial se determina la capacidad óptima de un solo servidor. Este valor es el número de procesos () que un servidor puede manejar de manera más eficiente.

Para saber cuántos servidores se necesitan, simplemente se debe dividir la cantidad total de procesos que se quieran manejar por la capacidad óptima de un solo servidor.

La fórmula es:

Como no se puede tener una fracción de servidor en el mundo real siempre se debe redondear el resultado hacia arriba al número entero más cercano

Porcentaje de rendimiento para aplicaciones en tiempo real

El cálculo se basa en la siguiente lógica: 100% de rendimiento significa que el servidor está operando en su punto mínimo de tiempo de respuesta (). Cualquier tiempo de respuesta mayor a ese mínimo dará un porcentaje menor a 100%.

Para obtener el tanto por ciento debemos obtener el tiempo de respuesta actual del servidor ()

Este porcentaje dará una métrica clara de qué tan cerca se está del rendimiento óptimo del servidor haciendo el siguiente análisis:

Si el porcentaje es menor a 100% (ejemplo 80%) y el resultado de la primera derivada  es negativo , significa que el servidor está desaprovechando recursos.

Si el porcentaje es menor a 100% (ejemplo 80%) y el resultado de la primera derivada  es positivo , significa que el servidor tiene sobrecarga.